// function add(x: number, y: number, z?: number): number{
//     if(z) {
//         return x + y + z
//     }
//     return x + y
// }

// let result = add(1, 2)

const add = (x: number, y: number, z?: number): number => {
    if (z) {
        return x + y + z
    }
    return x + y
}

// 函数赋值类型也必须相同
let add2: (x: number, y: number, z?: number) => number = add

// 声明函数interface
interface ISum {
    (x: number, y: number, z?: number) : number
}

let add3: ISum = add